import Request from '@/common/Request';

export class ApiMaster {
	constructor(baseUrl) {
		this.prefix = baseUrl;
	}

	/**
	 * 查询列表
	 * @param params {Object}
	 * @returns {Promise<AxiosResponse<any>>}
	 */
	list(params = {}) {
		return Request.get(this.getUrl('list'), {params})
	}

	/**
	 * 创建接口
	 * @param data
	 * @returns {Promise<AxiosResponse<any>>}
	 */
	create(data) {
		return Request.post(this.getUrl(''), data)
	}

	/**
	 * 根据id获取详情
	 * @param id
	 * @returns {Promise<AxiosResponse<any>>}
	 */
	get(id) {
		return Request.get(this.getUrl('' + id))
	}

	/**
	 * 根据id更新数据
	 * @param id
	 * @param data
	 * @returns {Promise<AxiosResponse<any>>}
	 */
	update(id, data) {
		return Request.put(this.getUrl('' + id), data)
	}

	/**
	 * 删除
	 * @param id
	 * @returns {Promise<AxiosResponse<any>>}
	 */
	delete(id) {
		return Request.delete(this.getUrl('') + id)
	}

	/**
	 *
	 * @param path {string}
	 * @returns {string}
	 */
	getUrl(path) {
		if(path === '' || !path) {
			return this.prefix;
		}
		return `${this.prefix}/${path}`;
	}

	/**
	 * 获取axios请求实例
	 * @returns {AxiosInstance}
	 */
	request() {
		return Request;
	}

}